/* Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University */
/* Copyright (c) 2011, 2012 Open Networking Foundation */
/* Copyright (c) 2012, 2013 Big Switch Networks, Inc. */
/* See the file LICENSE.loci which should have been included in the source distribution */

/****************************************************************
 *
 * loci_class_metadata.c
 *
 * Tables with information for each class
 *
 ****************************************************************/

#include "loci_log.h"
#include <loci/loci.h>

struct loci_class_metadata loci_class_metadata[OF_OBJECT_COUNT] = {
    [OF_ACTION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_BSN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_BSN_CHECKSUM] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_bsn_checksum_push_wire_types,
    },
    [OF_ACTION_BSN_MIRROR] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_bsn_mirror_push_wire_types,
    },
    [OF_ACTION_BSN_SET_TUNNEL_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_bsn_set_tunnel_dst_push_wire_types,
    },
    [OF_ACTION_ENQUEUE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_enqueue_push_wire_types,
    },
    [OF_ACTION_NICIRA] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_NICIRA_DEC_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_nicira_dec_ttl_push_wire_types,
    },
    [OF_ACTION_OUTPUT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_output_push_wire_types,
    },
    [OF_ACTION_SET_DL_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_dl_dst_push_wire_types,
    },
    [OF_ACTION_SET_DL_SRC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_dl_src_push_wire_types,
    },
    [OF_ACTION_SET_NW_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_nw_dst_push_wire_types,
    },
    [OF_ACTION_SET_NW_SRC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_nw_src_push_wire_types,
    },
    [OF_ACTION_SET_NW_TOS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_nw_tos_push_wire_types,
    },
    [OF_ACTION_SET_TP_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_tp_dst_push_wire_types,
    },
    [OF_ACTION_SET_TP_SRC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_tp_src_push_wire_types,
    },
    [OF_ACTION_SET_VLAN_PCP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_vlan_pcp_push_wire_types,
    },
    [OF_ACTION_SET_VLAN_VID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_vlan_vid_push_wire_types,
    },
    [OF_ACTION_STRIP_VLAN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_strip_vlan_push_wire_types,
    },
    [OF_HEADER] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_AGGREGATE_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_aggregate_stats_reply_push_wire_types,
    },
    [OF_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_AGGREGATE_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_aggregate_stats_request_push_wire_types,
    },
    [OF_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BAD_ACTION_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bad_action_error_msg_push_wire_types,
    },
    [OF_BAD_REQUEST_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bad_request_error_msg_push_wire_types,
    },
    [OF_BARRIER_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_barrier_reply_push_wire_types,
    },
    [OF_BARRIER_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_barrier_request_push_wire_types,
    },
    [OF_EXPERIMENTER] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_HEADER] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_BW_CLEAR_DATA_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_bw_clear_data_reply_push_wire_types,
    },
    [OF_BSN_BW_CLEAR_DATA_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_bw_clear_data_request_push_wire_types,
    },
    [OF_BSN_BW_ENABLE_GET_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_bw_enable_get_reply_push_wire_types,
    },
    [OF_BSN_BW_ENABLE_GET_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_bw_enable_get_request_push_wire_types,
    },
    [OF_BSN_BW_ENABLE_SET_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_bw_enable_set_reply_push_wire_types,
    },
    [OF_BSN_BW_ENABLE_SET_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_bw_enable_set_request_push_wire_types,
    },
    [OF_BSN_GET_INTERFACES_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_interfaces_reply_push_wire_types,
    },
    [OF_BSN_GET_INTERFACES_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_interfaces_request_push_wire_types,
    },
    [OF_BSN_GET_IP_MASK_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_ip_mask_reply_push_wire_types,
    },
    [OF_BSN_GET_IP_MASK_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_ip_mask_request_push_wire_types,
    },
    [OF_BSN_GET_L2_TABLE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_l2_table_reply_push_wire_types,
    },
    [OF_BSN_GET_L2_TABLE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_l2_table_request_push_wire_types,
    },
    [OF_BSN_GET_MIRRORING_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_mirroring_reply_push_wire_types,
    },
    [OF_BSN_GET_MIRRORING_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_mirroring_request_push_wire_types,
    },
    [OF_BSN_HYBRID_GET_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_hybrid_get_reply_push_wire_types,
    },
    [OF_BSN_HYBRID_GET_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_hybrid_get_request_push_wire_types,
    },
    [OF_BSN_INTERFACE] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_PDU_RX_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_pdu_rx_reply_push_wire_types,
    },
    [OF_BSN_PDU_RX_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_pdu_rx_request_push_wire_types,
    },
    [OF_BSN_PDU_RX_TIMEOUT] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_pdu_rx_timeout_push_wire_types,
    },
    [OF_BSN_PDU_TX_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_pdu_tx_reply_push_wire_types,
    },
    [OF_BSN_PDU_TX_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_pdu_tx_request_push_wire_types,
    },
    [OF_BSN_SET_IP_MASK] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_ip_mask_push_wire_types,
    },
    [OF_BSN_SET_L2_TABLE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_l2_table_reply_push_wire_types,
    },
    [OF_BSN_SET_L2_TABLE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_l2_table_request_push_wire_types,
    },
    [OF_BSN_SET_MIRRORING] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_mirroring_push_wire_types,
    },
    [OF_BSN_SET_PKTIN_SUPPRESSION_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_pktin_suppression_reply_push_wire_types,
    },
    [OF_BSN_SET_PKTIN_SUPPRESSION_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_pktin_suppression_request_push_wire_types,
    },
    [OF_BSN_SHELL_COMMAND] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_shell_command_push_wire_types,
    },
    [OF_BSN_SHELL_OUTPUT] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_shell_output_push_wire_types,
    },
    [OF_BSN_SHELL_STATUS] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_shell_status_push_wire_types,
    },
    [OF_EXPERIMENTER_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_EXPERIMENTER_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_VIRTUAL_PORT_CREATE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_virtual_port_create_reply_push_wire_types,
    },
    [OF_BSN_VPORT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_vport_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_BSN_VIRTUAL_PORT_CREATE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_virtual_port_create_request_push_wire_types,
    },
    [OF_BSN_VIRTUAL_PORT_REMOVE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_virtual_port_remove_reply_push_wire_types,
    },
    [OF_BSN_VIRTUAL_PORT_REMOVE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_virtual_port_remove_request_push_wire_types,
    },
    [OF_BSN_VPORT_L2GRE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_vport_wire_object_id_get,
        .wire_type_set=of_bsn_vport_l2gre_push_wire_types,
    },
    [OF_BSN_VPORT_Q_IN_Q] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_vport_wire_object_id_get,
        .wire_type_set=of_bsn_vport_q_in_q_push_wire_types,
    },
    [OF_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_desc_stats_reply_push_wire_types,
    },
    [OF_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_desc_stats_request_push_wire_types,
    },
    [OF_ECHO_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_echo_reply_push_wire_types,
    },
    [OF_ECHO_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_echo_request_push_wire_types,
    },
    [OF_FEATURES_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_features_reply_push_wire_types,
    },
    [OF_FEATURES_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_features_request_push_wire_types,
    },
    [OF_FLOW_MOD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_FLOW_ADD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_add_push_wire_types,
    },
    [OF_FLOW_DELETE] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_delete_push_wire_types,
    },
    [OF_FLOW_DELETE_STRICT] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_delete_strict_push_wire_types,
    },
    [OF_FLOW_MOD_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_mod_failed_error_msg_push_wire_types,
    },
    [OF_FLOW_MODIFY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_modify_push_wire_types,
    },
    [OF_FLOW_MODIFY_STRICT] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_modify_strict_push_wire_types,
    },
    [OF_FLOW_REMOVED] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_removed_push_wire_types,
    },
    [OF_FLOW_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_FLOW_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_stats_reply_push_wire_types,
    },
    [OF_FLOW_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_stats_request_push_wire_types,
    },
    [OF_GET_CONFIG_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_get_config_reply_push_wire_types,
    },
    [OF_GET_CONFIG_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_get_config_request_push_wire_types,
    },
    [OF_HELLO] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_hello_push_wire_types,
    },
    [OF_HELLO_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_hello_failed_error_msg_push_wire_types,
    },
    [OF_MATCH_V1] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_NICIRA_HEADER] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_NICIRA_CONTROLLER_ROLE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_nicira_controller_role_reply_push_wire_types,
    },
    [OF_NICIRA_CONTROLLER_ROLE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_nicira_controller_role_request_push_wire_types,
    },
    [OF_PACKET_IN] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_packet_in_push_wire_types,
    },
    [OF_PACKET_OUT] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_packet_out_push_wire_types,
    },
    [OF_PACKET_QUEUE] = {
        .wire_length_get=of_packet_queue_wire_length_get,
        .wire_length_set=of_packet_queue_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_PORT_DESC] = {
        .wire_length_get=of_port_desc_wire_length_get,
        .wire_length_set=of_port_desc_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_PORT_MOD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_port_mod_push_wire_types,
    },
    [OF_PORT_MOD_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_port_mod_failed_error_msg_push_wire_types,
    },
    [OF_PORT_STATS_ENTRY] = {
        .wire_length_get=of_port_stats_entry_wire_length_get,
        .wire_length_set=of_port_stats_entry_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_PORT_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_port_stats_reply_push_wire_types,
    },
    [OF_PORT_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_port_stats_request_push_wire_types,
    },
    [OF_PORT_STATUS] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_port_status_push_wire_types,
    },
    [OF_QUEUE_GET_CONFIG_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_queue_get_config_reply_push_wire_types,
    },
    [OF_QUEUE_GET_CONFIG_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_queue_get_config_request_push_wire_types,
    },
    [OF_QUEUE_OP_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_queue_op_failed_error_msg_push_wire_types,
    },
    [OF_QUEUE_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_QUEUE_PROP_MIN_RATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_prop_wire_object_id_get,
        .wire_type_set=of_queue_prop_min_rate_push_wire_types,
    },
    [OF_QUEUE_STATS_ENTRY] = {
        .wire_length_get=of_queue_stats_entry_wire_length_get,
        .wire_length_set=of_queue_stats_entry_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_QUEUE_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_queue_stats_reply_push_wire_types,
    },
    [OF_QUEUE_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_queue_stats_request_push_wire_types,
    },
    [OF_SET_CONFIG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_set_config_push_wire_types,
    },
    [OF_TABLE_MOD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_mod_push_wire_types,
    },
    [OF_TABLE_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_TABLE_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_stats_reply_push_wire_types,
    },
    [OF_TABLE_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_stats_request_push_wire_types,
    },
    [OF_ACTION_COPY_TTL_IN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_copy_ttl_in_push_wire_types,
    },
    [OF_ACTION_COPY_TTL_OUT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_copy_ttl_out_push_wire_types,
    },
    [OF_ACTION_DEC_MPLS_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_dec_mpls_ttl_push_wire_types,
    },
    [OF_ACTION_DEC_NW_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_dec_nw_ttl_push_wire_types,
    },
    [OF_ACTION_GROUP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_group_push_wire_types,
    },
    [OF_ACTION_POP_MPLS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_pop_mpls_push_wire_types,
    },
    [OF_ACTION_POP_VLAN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_pop_vlan_push_wire_types,
    },
    [OF_ACTION_PUSH_MPLS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_push_mpls_push_wire_types,
    },
    [OF_ACTION_PUSH_VLAN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_push_vlan_push_wire_types,
    },
    [OF_ACTION_SET_MPLS_LABEL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_mpls_label_push_wire_types,
    },
    [OF_ACTION_SET_MPLS_TC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_mpls_tc_push_wire_types,
    },
    [OF_ACTION_SET_MPLS_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_mpls_ttl_push_wire_types,
    },
    [OF_ACTION_SET_NW_ECN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_nw_ecn_push_wire_types,
    },
    [OF_ACTION_SET_NW_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_nw_ttl_push_wire_types,
    },
    [OF_ACTION_SET_QUEUE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_queue_push_wire_types,
    },
    [OF_BAD_INSTRUCTION_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bad_instruction_error_msg_push_wire_types,
    },
    [OF_BAD_MATCH_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bad_match_error_msg_push_wire_types,
    },
    [OF_BUCKET] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BUCKET_COUNTER] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_GROUP_MOD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_GROUP_ADD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_add_push_wire_types,
    },
    [OF_GROUP_DELETE] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_delete_push_wire_types,
    },
    [OF_GROUP_DESC_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_GROUP_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_desc_stats_reply_push_wire_types,
    },
    [OF_GROUP_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_desc_stats_request_push_wire_types,
    },
    [OF_GROUP_MOD_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_mod_failed_error_msg_push_wire_types,
    },
    [OF_GROUP_MODIFY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_modify_push_wire_types,
    },
    [OF_GROUP_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_GROUP_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_stats_reply_push_wire_types,
    },
    [OF_GROUP_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_stats_request_push_wire_types,
    },
    [OF_INSTRUCTION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_INSTRUCTION_APPLY_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_apply_actions_push_wire_types,
    },
    [OF_INSTRUCTION_CLEAR_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_clear_actions_push_wire_types,
    },
    [OF_INSTRUCTION_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_INSTRUCTION_GOTO_TABLE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_goto_table_push_wire_types,
    },
    [OF_INSTRUCTION_WRITE_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_write_actions_push_wire_types,
    },
    [OF_INSTRUCTION_WRITE_METADATA] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_write_metadata_push_wire_types,
    },
    [OF_MATCH_V2] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_match_v2_push_wire_types,
    },
    [OF_SWITCH_CONFIG_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_switch_config_failed_error_msg_push_wire_types,
    },
    [OF_TABLE_MOD_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_mod_failed_error_msg_push_wire_types,
    },
    [OF_OXM] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_SET_FIELD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_set_field_push_wire_types,
    },
    [OF_EXPERIMENTER_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_experimenter_error_msg_push_wire_types,
    },
    [OF_GROUP_FEATURES_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_features_stats_reply_push_wire_types,
    },
    [OF_GROUP_FEATURES_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_group_features_stats_request_push_wire_types,
    },
    [OF_MATCH_V3] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_match_v3_push_wire_types,
    },
    [OF_OXM_ARP_OP] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_op_push_wire_types,
    },
    [OF_OXM_ARP_OP_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_op_masked_push_wire_types,
    },
    [OF_OXM_ARP_SHA] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_sha_push_wire_types,
    },
    [OF_OXM_ARP_SHA_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_sha_masked_push_wire_types,
    },
    [OF_OXM_ARP_SPA] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_spa_push_wire_types,
    },
    [OF_OXM_ARP_SPA_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_spa_masked_push_wire_types,
    },
    [OF_OXM_ARP_THA] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_tha_push_wire_types,
    },
    [OF_OXM_ARP_THA_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_tha_masked_push_wire_types,
    },
    [OF_OXM_ARP_TPA] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_tpa_push_wire_types,
    },
    [OF_OXM_ARP_TPA_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_arp_tpa_masked_push_wire_types,
    },
    [OF_OXM_BSN_EGR_PORT_GROUP_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_egr_port_group_id_push_wire_types,
    },
    [OF_OXM_BSN_EGR_PORT_GROUP_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_egr_port_group_id_masked_push_wire_types,
    },
    [OF_OXM_BSN_GLOBAL_VRF_ALLOWED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_global_vrf_allowed_push_wire_types,
    },
    [OF_OXM_BSN_GLOBAL_VRF_ALLOWED_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_global_vrf_allowed_masked_push_wire_types,
    },
    [OF_OXM_BSN_IN_PORTS_128] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_in_ports_128_push_wire_types,
    },
    [OF_OXM_BSN_IN_PORTS_128_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_in_ports_128_masked_push_wire_types,
    },
    [OF_OXM_BSN_IN_PORTS_512] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_in_ports_512_push_wire_types,
    },
    [OF_OXM_BSN_IN_PORTS_512_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_in_ports_512_masked_push_wire_types,
    },
    [OF_OXM_BSN_INGRESS_PORT_GROUP_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_ingress_port_group_id_push_wire_types,
    },
    [OF_OXM_BSN_INGRESS_PORT_GROUP_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_ingress_port_group_id_masked_push_wire_types,
    },
    [OF_OXM_BSN_L2_CACHE_HIT] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l2_cache_hit_push_wire_types,
    },
    [OF_OXM_BSN_L2_CACHE_HIT_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l2_cache_hit_masked_push_wire_types,
    },
    [OF_OXM_BSN_L3_DST_CLASS_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l3_dst_class_id_push_wire_types,
    },
    [OF_OXM_BSN_L3_DST_CLASS_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l3_dst_class_id_masked_push_wire_types,
    },
    [OF_OXM_BSN_L3_INTERFACE_CLASS_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l3_interface_class_id_push_wire_types,
    },
    [OF_OXM_BSN_L3_INTERFACE_CLASS_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l3_interface_class_id_masked_push_wire_types,
    },
    [OF_OXM_BSN_L3_SRC_CLASS_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l3_src_class_id_push_wire_types,
    },
    [OF_OXM_BSN_L3_SRC_CLASS_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_l3_src_class_id_masked_push_wire_types,
    },
    [OF_OXM_BSN_LAG_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_lag_id_push_wire_types,
    },
    [OF_OXM_BSN_LAG_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_lag_id_masked_push_wire_types,
    },
    [OF_OXM_BSN_TCP_FLAGS] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_tcp_flags_push_wire_types,
    },
    [OF_OXM_BSN_TCP_FLAGS_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_tcp_flags_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF0] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf0_push_wire_types,
    },
    [OF_OXM_BSN_UDF0_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf0_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF1] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf1_push_wire_types,
    },
    [OF_OXM_BSN_UDF1_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf1_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF2] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf2_push_wire_types,
    },
    [OF_OXM_BSN_UDF2_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf2_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF3] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf3_push_wire_types,
    },
    [OF_OXM_BSN_UDF3_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf3_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF4] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf4_push_wire_types,
    },
    [OF_OXM_BSN_UDF4_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf4_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF5] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf5_push_wire_types,
    },
    [OF_OXM_BSN_UDF5_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf5_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF6] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf6_push_wire_types,
    },
    [OF_OXM_BSN_UDF6_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf6_masked_push_wire_types,
    },
    [OF_OXM_BSN_UDF7] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf7_push_wire_types,
    },
    [OF_OXM_BSN_UDF7_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_udf7_masked_push_wire_types,
    },
    [OF_OXM_BSN_VLAN_XLATE_PORT_GROUP_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_vlan_xlate_port_group_id_push_wire_types,
    },
    [OF_OXM_BSN_VLAN_XLATE_PORT_GROUP_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_vlan_xlate_port_group_id_masked_push_wire_types,
    },
    [OF_OXM_BSN_VRF] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_vrf_push_wire_types,
    },
    [OF_OXM_BSN_VRF_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_bsn_vrf_masked_push_wire_types,
    },
    [OF_OXM_ETH_DST] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_eth_dst_push_wire_types,
    },
    [OF_OXM_ETH_DST_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_eth_dst_masked_push_wire_types,
    },
    [OF_OXM_ETH_SRC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_eth_src_push_wire_types,
    },
    [OF_OXM_ETH_SRC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_eth_src_masked_push_wire_types,
    },
    [OF_OXM_ETH_TYPE] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_eth_type_push_wire_types,
    },
    [OF_OXM_ETH_TYPE_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_eth_type_masked_push_wire_types,
    },
    [OF_OXM_ICMPV4_CODE] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv4_code_push_wire_types,
    },
    [OF_OXM_ICMPV4_CODE_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv4_code_masked_push_wire_types,
    },
    [OF_OXM_ICMPV4_TYPE] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv4_type_push_wire_types,
    },
    [OF_OXM_ICMPV4_TYPE_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv4_type_masked_push_wire_types,
    },
    [OF_OXM_ICMPV6_CODE] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv6_code_push_wire_types,
    },
    [OF_OXM_ICMPV6_CODE_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv6_code_masked_push_wire_types,
    },
    [OF_OXM_ICMPV6_TYPE] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv6_type_push_wire_types,
    },
    [OF_OXM_ICMPV6_TYPE_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_icmpv6_type_masked_push_wire_types,
    },
    [OF_OXM_IN_PHY_PORT] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_in_phy_port_push_wire_types,
    },
    [OF_OXM_IN_PHY_PORT_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_in_phy_port_masked_push_wire_types,
    },
    [OF_OXM_IN_PORT] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_in_port_push_wire_types,
    },
    [OF_OXM_IN_PORT_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_in_port_masked_push_wire_types,
    },
    [OF_OXM_IP_DSCP] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ip_dscp_push_wire_types,
    },
    [OF_OXM_IP_DSCP_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ip_dscp_masked_push_wire_types,
    },
    [OF_OXM_IP_ECN] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ip_ecn_push_wire_types,
    },
    [OF_OXM_IP_ECN_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ip_ecn_masked_push_wire_types,
    },
    [OF_OXM_IP_PROTO] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ip_proto_push_wire_types,
    },
    [OF_OXM_IP_PROTO_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ip_proto_masked_push_wire_types,
    },
    [OF_OXM_IPV4_DST] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv4_dst_push_wire_types,
    },
    [OF_OXM_IPV4_DST_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv4_dst_masked_push_wire_types,
    },
    [OF_OXM_IPV4_SRC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv4_src_push_wire_types,
    },
    [OF_OXM_IPV4_SRC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv4_src_masked_push_wire_types,
    },
    [OF_OXM_IPV6_DST] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_dst_push_wire_types,
    },
    [OF_OXM_IPV6_DST_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_dst_masked_push_wire_types,
    },
    [OF_OXM_IPV6_FLABEL] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_flabel_push_wire_types,
    },
    [OF_OXM_IPV6_FLABEL_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_flabel_masked_push_wire_types,
    },
    [OF_OXM_IPV6_ND_SLL] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_nd_sll_push_wire_types,
    },
    [OF_OXM_IPV6_ND_SLL_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_nd_sll_masked_push_wire_types,
    },
    [OF_OXM_IPV6_ND_TARGET] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_nd_target_push_wire_types,
    },
    [OF_OXM_IPV6_ND_TARGET_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_nd_target_masked_push_wire_types,
    },
    [OF_OXM_IPV6_ND_TLL] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_nd_tll_push_wire_types,
    },
    [OF_OXM_IPV6_ND_TLL_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_nd_tll_masked_push_wire_types,
    },
    [OF_OXM_IPV6_SRC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_src_push_wire_types,
    },
    [OF_OXM_IPV6_SRC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_src_masked_push_wire_types,
    },
    [OF_OXM_METADATA] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_metadata_push_wire_types,
    },
    [OF_OXM_METADATA_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_metadata_masked_push_wire_types,
    },
    [OF_OXM_MPLS_LABEL] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_mpls_label_push_wire_types,
    },
    [OF_OXM_MPLS_LABEL_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_mpls_label_masked_push_wire_types,
    },
    [OF_OXM_MPLS_TC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_mpls_tc_push_wire_types,
    },
    [OF_OXM_MPLS_TC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_mpls_tc_masked_push_wire_types,
    },
    [OF_OXM_SCTP_DST] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_sctp_dst_push_wire_types,
    },
    [OF_OXM_SCTP_DST_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_sctp_dst_masked_push_wire_types,
    },
    [OF_OXM_SCTP_SRC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_sctp_src_push_wire_types,
    },
    [OF_OXM_SCTP_SRC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_sctp_src_masked_push_wire_types,
    },
    [OF_OXM_TCP_DST] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tcp_dst_push_wire_types,
    },
    [OF_OXM_TCP_DST_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tcp_dst_masked_push_wire_types,
    },
    [OF_OXM_TCP_SRC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tcp_src_push_wire_types,
    },
    [OF_OXM_TCP_SRC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tcp_src_masked_push_wire_types,
    },
    [OF_OXM_TUNNEL_IPV4_DST] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tunnel_ipv4_dst_push_wire_types,
    },
    [OF_OXM_TUNNEL_IPV4_DST_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tunnel_ipv4_dst_masked_push_wire_types,
    },
    [OF_OXM_TUNNEL_IPV4_SRC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tunnel_ipv4_src_push_wire_types,
    },
    [OF_OXM_TUNNEL_IPV4_SRC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tunnel_ipv4_src_masked_push_wire_types,
    },
    [OF_OXM_UDP_DST] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_udp_dst_push_wire_types,
    },
    [OF_OXM_UDP_DST_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_udp_dst_masked_push_wire_types,
    },
    [OF_OXM_UDP_SRC] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_udp_src_push_wire_types,
    },
    [OF_OXM_UDP_SRC_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_udp_src_masked_push_wire_types,
    },
    [OF_OXM_VLAN_PCP] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_vlan_pcp_push_wire_types,
    },
    [OF_OXM_VLAN_PCP_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_vlan_pcp_masked_push_wire_types,
    },
    [OF_OXM_VLAN_VID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_vlan_vid_push_wire_types,
    },
    [OF_OXM_VLAN_VID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_vlan_vid_masked_push_wire_types,
    },
    [OF_QUEUE_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_QUEUE_PROP_MAX_RATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_prop_wire_object_id_get,
        .wire_type_set=of_queue_prop_max_rate_push_wire_types,
    },
    [OF_ROLE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_role_reply_push_wire_types,
    },
    [OF_ROLE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_role_request_push_wire_types,
    },
    [OF_ROLE_REQUEST_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_role_request_failed_error_msg_push_wire_types,
    },
    [OF_ACTION_ID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_ID_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_ID_BSN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_ID_BSN_CHECKSUM] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_bsn_checksum_push_wire_types,
    },
    [OF_ACTION_BSN_GENTABLE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_bsn_gentable_push_wire_types,
    },
    [OF_ACTION_ID_BSN_GENTABLE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_bsn_gentable_push_wire_types,
    },
    [OF_ACTION_ID_BSN_MIRROR] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_bsn_mirror_push_wire_types,
    },
    [OF_ACTION_ID_BSN_SET_TUNNEL_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_bsn_set_tunnel_dst_push_wire_types,
    },
    [OF_ACTION_ID_COPY_TTL_IN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_copy_ttl_in_push_wire_types,
    },
    [OF_ACTION_ID_COPY_TTL_OUT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_copy_ttl_out_push_wire_types,
    },
    [OF_ACTION_ID_DEC_MPLS_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_dec_mpls_ttl_push_wire_types,
    },
    [OF_ACTION_ID_DEC_NW_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_dec_nw_ttl_push_wire_types,
    },
    [OF_ACTION_ID_GROUP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_group_push_wire_types,
    },
    [OF_ACTION_ID_NICIRA] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ACTION_ID_NICIRA_DEC_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_nicira_dec_ttl_push_wire_types,
    },
    [OF_ACTION_ID_OUTPUT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_output_push_wire_types,
    },
    [OF_ACTION_ID_POP_MPLS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_pop_mpls_push_wire_types,
    },
    [OF_ACTION_POP_PBB] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_pop_pbb_push_wire_types,
    },
    [OF_ACTION_ID_POP_PBB] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_pop_pbb_push_wire_types,
    },
    [OF_ACTION_ID_POP_VLAN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_pop_vlan_push_wire_types,
    },
    [OF_ACTION_ID_PUSH_MPLS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_push_mpls_push_wire_types,
    },
    [OF_ACTION_PUSH_PBB] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_wire_object_id_get,
        .wire_type_set=of_action_push_pbb_push_wire_types,
    },
    [OF_ACTION_ID_PUSH_PBB] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_push_pbb_push_wire_types,
    },
    [OF_ACTION_ID_PUSH_VLAN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_push_vlan_push_wire_types,
    },
    [OF_ACTION_ID_SET_FIELD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_set_field_push_wire_types,
    },
    [OF_ACTION_ID_SET_MPLS_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_set_mpls_ttl_push_wire_types,
    },
    [OF_ACTION_ID_SET_NW_TTL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_set_nw_ttl_push_wire_types,
    },
    [OF_ACTION_ID_SET_QUEUE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_action_id_wire_object_id_get,
        .wire_type_set=of_action_id_set_queue_push_wire_types,
    },
    [OF_ASYNC_GET_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_async_get_reply_push_wire_types,
    },
    [OF_ASYNC_GET_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_async_get_request_push_wire_types,
    },
    [OF_ASYNC_SET] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_async_set_push_wire_types,
    },
    [OF_BSN_ARP_IDLE] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_arp_idle_push_wire_types,
    },
    [OF_BSN_CONTROLLER_CONNECTION] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_CONTROLLER_CONNECTIONS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_controller_connections_reply_push_wire_types,
    },
    [OF_BSN_CONTROLLER_CONNECTIONS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_controller_connections_request_push_wire_types,
    },
    [OF_BSN_DEBUG_COUNTER_DESC_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_DEBUG_COUNTER_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_debug_counter_desc_stats_reply_push_wire_types,
    },
    [OF_BSN_DEBUG_COUNTER_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_debug_counter_desc_stats_request_push_wire_types,
    },
    [OF_BSN_DEBUG_COUNTER_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_DEBUG_COUNTER_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_debug_counter_stats_reply_push_wire_types,
    },
    [OF_BSN_DEBUG_COUNTER_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_debug_counter_stats_request_push_wire_types,
    },
    [OF_BSN_FLOW_CHECKSUM_BUCKET_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_FLOW_CHECKSUM_BUCKET_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_flow_checksum_bucket_stats_reply_push_wire_types,
    },
    [OF_BSN_FLOW_CHECKSUM_BUCKET_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_flow_checksum_bucket_stats_request_push_wire_types,
    },
    [OF_BSN_FLOW_IDLE] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_flow_idle_push_wire_types,
    },
    [OF_BSN_FLOW_IDLE_ENABLE_GET_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_flow_idle_enable_get_reply_push_wire_types,
    },
    [OF_BSN_FLOW_IDLE_ENABLE_GET_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_flow_idle_enable_get_request_push_wire_types,
    },
    [OF_BSN_FLOW_IDLE_ENABLE_SET_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_flow_idle_enable_set_reply_push_wire_types,
    },
    [OF_BSN_FLOW_IDLE_ENABLE_SET_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_flow_idle_enable_set_request_push_wire_types,
    },
    [OF_BSN_GENERIC_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_GENERIC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_generic_stats_reply_push_wire_types,
    },
    [OF_BSN_GENERIC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_generic_stats_request_push_wire_types,
    },
    [OF_BSN_GENTABLE_BUCKET_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_GENTABLE_BUCKET_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_bucket_stats_reply_push_wire_types,
    },
    [OF_BSN_GENTABLE_BUCKET_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_bucket_stats_request_push_wire_types,
    },
    [OF_BSN_GENTABLE_CLEAR_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_clear_reply_push_wire_types,
    },
    [OF_BSN_GENTABLE_CLEAR_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_clear_request_push_wire_types,
    },
    [OF_BSN_GENTABLE_DESC_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_GENTABLE_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_desc_stats_reply_push_wire_types,
    },
    [OF_BSN_GENTABLE_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_desc_stats_request_push_wire_types,
    },
    [OF_BSN_GENTABLE_ENTRY_ADD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_entry_add_push_wire_types,
    },
    [OF_BSN_GENTABLE_ENTRY_DELETE] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_entry_delete_push_wire_types,
    },
    [OF_BSN_GENTABLE_ENTRY_DESC_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_GENTABLE_ENTRY_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_entry_desc_stats_reply_push_wire_types,
    },
    [OF_BSN_GENTABLE_ENTRY_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_entry_desc_stats_request_push_wire_types,
    },
    [OF_BSN_GENTABLE_ENTRY_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_GENTABLE_ENTRY_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_entry_stats_reply_push_wire_types,
    },
    [OF_BSN_GENTABLE_ENTRY_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_entry_stats_request_push_wire_types,
    },
    [OF_BSN_GENTABLE_SET_BUCKETS_SIZE] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_set_buckets_size_push_wire_types,
    },
    [OF_BSN_GENTABLE_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_GENTABLE_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_stats_reply_push_wire_types,
    },
    [OF_BSN_GENTABLE_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_gentable_stats_request_push_wire_types,
    },
    [OF_BSN_GET_SWITCH_PIPELINE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_switch_pipeline_reply_push_wire_types,
    },
    [OF_BSN_GET_SWITCH_PIPELINE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_get_switch_pipeline_request_push_wire_types,
    },
    [OF_BSN_IMAGE_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_image_desc_stats_reply_push_wire_types,
    },
    [OF_BSN_IMAGE_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_image_desc_stats_request_push_wire_types,
    },
    [OF_BSN_LACP_CONVERGENCE_NOTIF] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_lacp_convergence_notif_push_wire_types,
    },
    [OF_BSN_LACP_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_LACP_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_lacp_stats_reply_push_wire_types,
    },
    [OF_BSN_LACP_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_lacp_stats_request_push_wire_types,
    },
    [OF_BSN_LOG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_log_push_wire_types,
    },
    [OF_BSN_LUA_COMMAND_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_lua_command_reply_push_wire_types,
    },
    [OF_BSN_LUA_COMMAND_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_lua_command_request_push_wire_types,
    },
    [OF_BSN_LUA_NOTIFICATION] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_lua_notification_push_wire_types,
    },
    [OF_BSN_LUA_UPLOAD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_lua_upload_push_wire_types,
    },
    [OF_BSN_PORT_COUNTER_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_PORT_COUNTER_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_port_counter_stats_reply_push_wire_types,
    },
    [OF_BSN_PORT_COUNTER_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_port_counter_stats_request_push_wire_types,
    },
    [OF_BSN_ROLE_STATUS] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_role_status_push_wire_types,
    },
    [OF_BSN_SET_AUX_CXNS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_aux_cxns_reply_push_wire_types,
    },
    [OF_BSN_SET_AUX_CXNS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_aux_cxns_request_push_wire_types,
    },
    [OF_BSN_SET_LACP_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_lacp_reply_push_wire_types,
    },
    [OF_BSN_SET_LACP_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_lacp_request_push_wire_types,
    },
    [OF_BSN_SET_SWITCH_PIPELINE_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_switch_pipeline_reply_push_wire_types,
    },
    [OF_BSN_SET_SWITCH_PIPELINE_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_set_switch_pipeline_request_push_wire_types,
    },
    [OF_BSN_SWITCH_PIPELINE_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_SWITCH_PIPELINE_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_switch_pipeline_stats_reply_push_wire_types,
    },
    [OF_BSN_SWITCH_PIPELINE_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_switch_pipeline_stats_request_push_wire_types,
    },
    [OF_BSN_TABLE_CHECKSUM_STATS_ENTRY] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_TABLE_CHECKSUM_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_table_checksum_stats_reply_push_wire_types,
    },
    [OF_BSN_TABLE_CHECKSUM_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_table_checksum_stats_request_push_wire_types,
    },
    [OF_BSN_TABLE_SET_BUCKETS_SIZE] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_table_set_buckets_size_push_wire_types,
    },
    [OF_BSN_TIME_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_time_reply_push_wire_types,
    },
    [OF_BSN_TIME_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_time_request_push_wire_types,
    },
    [OF_BSN_TLV] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_BSN_TLV_ACTOR_KEY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_actor_key_push_wire_types,
    },
    [OF_BSN_TLV_ACTOR_PORT_NUM] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_actor_port_num_push_wire_types,
    },
    [OF_BSN_TLV_ACTOR_PORT_PRIORITY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_actor_port_priority_push_wire_types,
    },
    [OF_BSN_TLV_ACTOR_STATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_actor_state_push_wire_types,
    },
    [OF_BSN_TLV_ACTOR_SYSTEM_MAC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_actor_system_mac_push_wire_types,
    },
    [OF_BSN_TLV_ACTOR_SYSTEM_PRIORITY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_actor_system_priority_push_wire_types,
    },
    [OF_BSN_TLV_BROADCAST_QUERY_TIMEOUT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_broadcast_query_timeout_push_wire_types,
    },
    [OF_BSN_TLV_BUCKET] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_bucket_push_wire_types,
    },
    [OF_BSN_TLV_CIRCUIT_ID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_circuit_id_push_wire_types,
    },
    [OF_BSN_TLV_CONVERGENCE_STATUS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_convergence_status_push_wire_types,
    },
    [OF_BSN_TLV_CRC_ENABLED] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_crc_enabled_push_wire_types,
    },
    [OF_BSN_TLV_DATA] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_data_push_wire_types,
    },
    [OF_BSN_TLV_ETH_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_eth_dst_push_wire_types,
    },
    [OF_BSN_TLV_ETH_SRC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_eth_src_push_wire_types,
    },
    [OF_BSN_TLV_EXTERNAL_GATEWAY_IP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_external_gateway_ip_push_wire_types,
    },
    [OF_BSN_TLV_EXTERNAL_GATEWAY_MAC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_external_gateway_mac_push_wire_types,
    },
    [OF_BSN_TLV_EXTERNAL_IP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_external_ip_push_wire_types,
    },
    [OF_BSN_TLV_EXTERNAL_MAC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_external_mac_push_wire_types,
    },
    [OF_BSN_TLV_EXTERNAL_NETMASK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_external_netmask_push_wire_types,
    },
    [OF_BSN_TLV_HEADER_SIZE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_header_size_push_wire_types,
    },
    [OF_BSN_TLV_ICMP_CODE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_icmp_code_push_wire_types,
    },
    [OF_BSN_TLV_ICMP_ID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_icmp_id_push_wire_types,
    },
    [OF_BSN_TLV_ICMP_TYPE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_icmp_type_push_wire_types,
    },
    [OF_BSN_TLV_IDLE_NOTIFICATION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_idle_notification_push_wire_types,
    },
    [OF_BSN_TLV_IDLE_TIME] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_idle_time_push_wire_types,
    },
    [OF_BSN_TLV_IDLE_TIMEOUT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_idle_timeout_push_wire_types,
    },
    [OF_BSN_TLV_INTERNAL_GATEWAY_MAC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_internal_gateway_mac_push_wire_types,
    },
    [OF_BSN_TLV_INTERNAL_MAC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_internal_mac_push_wire_types,
    },
    [OF_BSN_TLV_INTERVAL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_interval_push_wire_types,
    },
    [OF_BSN_TLV_IP_PROTO] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_ip_proto_push_wire_types,
    },
    [OF_BSN_TLV_IPV4] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_ipv4_push_wire_types,
    },
    [OF_BSN_TLV_IPV4_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_ipv4_dst_push_wire_types,
    },
    [OF_BSN_TLV_IPV4_NETMASK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_ipv4_netmask_push_wire_types,
    },
    [OF_BSN_TLV_IPV4_SRC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_ipv4_src_push_wire_types,
    },
    [OF_BSN_TLV_MAC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_mac_push_wire_types,
    },
    [OF_BSN_TLV_MAC_MASK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_mac_mask_push_wire_types,
    },
    [OF_BSN_TLV_MISS_PACKETS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_miss_packets_push_wire_types,
    },
    [OF_BSN_TLV_MPLS_CONTROL_WORD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_mpls_control_word_push_wire_types,
    },
    [OF_BSN_TLV_MPLS_LABEL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_mpls_label_push_wire_types,
    },
    [OF_BSN_TLV_MPLS_SEQUENCED] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_mpls_sequenced_push_wire_types,
    },
    [OF_BSN_TLV_NAME] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_name_push_wire_types,
    },
    [OF_BSN_TLV_PARTNER_KEY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_partner_key_push_wire_types,
    },
    [OF_BSN_TLV_PARTNER_PORT_NUM] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_partner_port_num_push_wire_types,
    },
    [OF_BSN_TLV_PARTNER_PORT_PRIORITY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_partner_port_priority_push_wire_types,
    },
    [OF_BSN_TLV_PARTNER_STATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_partner_state_push_wire_types,
    },
    [OF_BSN_TLV_PARTNER_SYSTEM_MAC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_partner_system_mac_push_wire_types,
    },
    [OF_BSN_TLV_PARTNER_SYSTEM_PRIORITY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_partner_system_priority_push_wire_types,
    },
    [OF_BSN_TLV_PORT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_port_push_wire_types,
    },
    [OF_BSN_TLV_PRIORITY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_priority_push_wire_types,
    },
    [OF_BSN_TLV_QUEUE_ID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_queue_id_push_wire_types,
    },
    [OF_BSN_TLV_QUEUE_WEIGHT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_queue_weight_push_wire_types,
    },
    [OF_BSN_TLV_REFERENCE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_reference_push_wire_types,
    },
    [OF_BSN_TLV_REPLY_PACKETS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_reply_packets_push_wire_types,
    },
    [OF_BSN_TLV_REQUEST_PACKETS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_request_packets_push_wire_types,
    },
    [OF_BSN_TLV_RX_BYTES] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_rx_bytes_push_wire_types,
    },
    [OF_BSN_TLV_RX_PACKETS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_rx_packets_push_wire_types,
    },
    [OF_BSN_TLV_SAMPLING_RATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_sampling_rate_push_wire_types,
    },
    [OF_BSN_TLV_SUB_AGENT_ID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_sub_agent_id_push_wire_types,
    },
    [OF_BSN_TLV_TCP_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_tcp_dst_push_wire_types,
    },
    [OF_BSN_TLV_TCP_SRC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_tcp_src_push_wire_types,
    },
    [OF_BSN_TLV_TX_BYTES] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_tx_bytes_push_wire_types,
    },
    [OF_BSN_TLV_TX_PACKETS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_tx_packets_push_wire_types,
    },
    [OF_BSN_TLV_UDF_ANCHOR] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_udf_anchor_push_wire_types,
    },
    [OF_BSN_TLV_UDF_ID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_udf_id_push_wire_types,
    },
    [OF_BSN_TLV_UDF_LENGTH] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_udf_length_push_wire_types,
    },
    [OF_BSN_TLV_UDF_OFFSET] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_udf_offset_push_wire_types,
    },
    [OF_BSN_TLV_UDP_DST] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_udp_dst_push_wire_types,
    },
    [OF_BSN_TLV_UDP_SRC] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_udp_src_push_wire_types,
    },
    [OF_BSN_TLV_UNICAST_QUERY_TIMEOUT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_unicast_query_timeout_push_wire_types,
    },
    [OF_BSN_TLV_VLAN_VID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_vlan_vid_push_wire_types,
    },
    [OF_BSN_TLV_VRF] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bsn_tlv_wire_object_id_get,
        .wire_type_set=of_bsn_tlv_vrf_push_wire_types,
    },
    [OF_BSN_VLAN_COUNTER_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_VLAN_COUNTER_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_vlan_counter_stats_reply_push_wire_types,
    },
    [OF_BSN_VLAN_COUNTER_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_vlan_counter_stats_request_push_wire_types,
    },
    [OF_BSN_VRF_COUNTER_STATS_ENTRY] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_BSN_VRF_COUNTER_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_vrf_counter_stats_reply_push_wire_types,
    },
    [OF_BSN_VRF_COUNTER_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bsn_vrf_counter_stats_request_push_wire_types,
    },
    [OF_HELLO_ELEM] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_hello_elem_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_HELLO_ELEM_VERSIONBITMAP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_hello_elem_wire_object_id_get,
        .wire_type_set=of_hello_elem_versionbitmap_push_wire_types,
    },
    [OF_INSTRUCTION_ID] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_INSTRUCTION_ID_APPLY_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_apply_actions_push_wire_types,
    },
    [OF_INSTRUCTION_BSN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_INSTRUCTION_ID_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_INSTRUCTION_ID_BSN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_INSTRUCTION_BSN_ARP_OFFLOAD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_arp_offload_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_ARP_OFFLOAD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_arp_offload_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_AUTO_NEGOTIATION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_auto_negotiation_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_AUTO_NEGOTIATION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_auto_negotiation_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_DENY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_deny_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_DENY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_deny_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_DHCP_OFFLOAD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_dhcp_offload_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_DHCP_OFFLOAD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_dhcp_offload_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_DISABLE_SPLIT_HORIZON_CHECK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_disable_split_horizon_check_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_DISABLE_SPLIT_HORIZON_CHECK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_disable_split_horizon_check_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_DISABLE_SRC_MAC_CHECK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_disable_src_mac_check_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_DISABLE_SRC_MAC_CHECK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_disable_src_mac_check_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_DISABLE_VLAN_COUNTERS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_disable_vlan_counters_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_DISABLE_VLAN_COUNTERS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_disable_vlan_counters_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_PACKET_OF_DEATH] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_packet_of_death_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_PACKET_OF_DEATH] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_packet_of_death_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_PERMIT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_permit_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_PERMIT] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_permit_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_PRIORITIZE_PDUS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_prioritize_pdus_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_PRIORITIZE_PDUS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_prioritize_pdus_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_REQUIRE_VLAN_XLATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_require_vlan_xlate_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_REQUIRE_VLAN_XLATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_require_vlan_xlate_push_wire_types,
    },
    [OF_INSTRUCTION_BSN_SPAN_DESTINATION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_bsn_span_destination_push_wire_types,
    },
    [OF_INSTRUCTION_ID_BSN_SPAN_DESTINATION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_bsn_span_destination_push_wire_types,
    },
    [OF_INSTRUCTION_ID_CLEAR_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_clear_actions_push_wire_types,
    },
    [OF_INSTRUCTION_ID_GOTO_TABLE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_goto_table_push_wire_types,
    },
    [OF_INSTRUCTION_METER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_wire_object_id_get,
        .wire_type_set=of_instruction_meter_push_wire_types,
    },
    [OF_INSTRUCTION_ID_METER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_meter_push_wire_types,
    },
    [OF_INSTRUCTION_ID_WRITE_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_write_actions_push_wire_types,
    },
    [OF_INSTRUCTION_ID_WRITE_METADATA] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_instruction_id_wire_object_id_get,
        .wire_type_set=of_instruction_id_write_metadata_push_wire_types,
    },
    [OF_METER_BAND] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_meter_band_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_METER_BAND_DROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_meter_band_wire_object_id_get,
        .wire_type_set=of_meter_band_drop_push_wire_types,
    },
    [OF_METER_BAND_DSCP_REMARK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_meter_band_wire_object_id_get,
        .wire_type_set=of_meter_band_dscp_remark_push_wire_types,
    },
    [OF_METER_BAND_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_meter_band_wire_object_id_get,
        .wire_type_set=of_meter_band_experimenter_push_wire_types,
    },
    [OF_METER_BAND_STATS] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_METER_CONFIG] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_METER_CONFIG_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_config_stats_reply_push_wire_types,
    },
    [OF_METER_CONFIG_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_config_stats_request_push_wire_types,
    },
    [OF_METER_FEATURES] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_METER_FEATURES_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_features_stats_reply_push_wire_types,
    },
    [OF_METER_FEATURES_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_features_stats_request_push_wire_types,
    },
    [OF_METER_MOD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_mod_push_wire_types,
    },
    [OF_METER_MOD_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_mod_failed_error_msg_push_wire_types,
    },
    [OF_METER_STATS] = {
        .wire_length_get=of_meter_stats_wire_length_get,
        .wire_length_set=of_meter_stats_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_METER_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_stats_reply_push_wire_types,
    },
    [OF_METER_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_meter_stats_request_push_wire_types,
    },
    [OF_OXM_IPV6_EXTHDR] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_exthdr_push_wire_types,
    },
    [OF_OXM_IPV6_EXTHDR_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_ipv6_exthdr_masked_push_wire_types,
    },
    [OF_OXM_MPLS_BOS] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_mpls_bos_push_wire_types,
    },
    [OF_OXM_MPLS_BOS_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_mpls_bos_masked_push_wire_types,
    },
    [OF_OXM_TUNNEL_ID] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tunnel_id_push_wire_types,
    },
    [OF_OXM_TUNNEL_ID_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_tunnel_id_masked_push_wire_types,
    },
    [OF_PORT_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_port_desc_stats_reply_push_wire_types,
    },
    [OF_PORT_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_port_desc_stats_request_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_TABLE_FEATURE_PROP_APPLY_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_apply_actions_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_APPLY_ACTIONS_MISS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_apply_actions_miss_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_APPLY_SETFIELD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_apply_setfield_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_APPLY_SETFIELD_MISS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_apply_setfield_miss_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_TABLE_FEATURE_PROP_EXPERIMENTER_MISS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_TABLE_FEATURE_PROP_INSTRUCTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_instructions_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_INSTRUCTIONS_MISS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_instructions_miss_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_MATCH] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_match_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_NEXT_TABLES] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_next_tables_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_NEXT_TABLES_MISS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_next_tables_miss_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_WILDCARDS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_wildcards_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_WRITE_ACTIONS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_write_actions_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_WRITE_ACTIONS_MISS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_write_actions_miss_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_WRITE_SETFIELD] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_write_setfield_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_WRITE_SETFIELD_MISS] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_write_setfield_miss_push_wire_types,
    },
    [OF_TABLE_FEATURES] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_TABLE_FEATURES_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_features_failed_error_msg_push_wire_types,
    },
    [OF_TABLE_FEATURES_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_features_stats_reply_push_wire_types,
    },
    [OF_TABLE_FEATURES_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_features_stats_request_push_wire_types,
    },
    [OF_UINT32] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_UINT64] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_UINT8] = {
        .wire_length_get=NULL,
        .wire_length_set=NULL,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_ASYNC_CONFIG_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_async_config_failed_error_msg_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ASYNC_CONFIG_PROP_EXPERIMENTER_MASTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_experimenter_master_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_EXPERIMENTER_SLAVE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_experimenter_slave_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_FLOW_REMOVED_MASTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_flow_removed_master_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_FLOW_REMOVED_SLAVE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_flow_removed_slave_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_PACKET_IN_MASTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_packet_in_master_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_PACKET_IN_SLAVE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_packet_in_slave_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_PORT_STATUS_MASTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_port_status_master_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_PORT_STATUS_SLAVE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_port_status_slave_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_REQUESTFORWARD_MASTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_requestforward_master_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_REQUESTFORWARD_SLAVE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_requestforward_slave_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_ROLE_STATUS_MASTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_role_status_master_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_ROLE_STATUS_SLAVE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_role_status_slave_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_TABLE_STATUS_MASTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_table_status_master_push_wire_types,
    },
    [OF_ASYNC_CONFIG_PROP_TABLE_STATUS_SLAVE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_async_config_prop_wire_object_id_get,
        .wire_type_set=of_async_config_prop_table_status_slave_push_wire_types,
    },
    [OF_BAD_PROPERTY_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bad_property_error_msg_push_wire_types,
    },
    [OF_BUNDLE_ADD_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bundle_add_msg_push_wire_types,
    },
    [OF_BUNDLE_CTRL_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bundle_ctrl_msg_push_wire_types,
    },
    [OF_BUNDLE_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_bundle_failed_error_msg_push_wire_types,
    },
    [OF_BUNDLE_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bundle_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_BUNDLE_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_bundle_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_FLOW_MONITOR_FAILED_ERROR_MSG] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_flow_monitor_failed_error_msg_push_wire_types,
    },
    [OF_OXM_PBB_UCA] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_pbb_uca_push_wire_types,
    },
    [OF_OXM_PBB_UCA_MASKED] = {
        .wire_length_get=of_oxm_wire_length_get,
        .wire_length_set=NULL,
        .wire_type_get=of_oxm_wire_object_id_get,
        .wire_type_set=of_oxm_pbb_uca_masked_push_wire_types,
    },
    [OF_PORT_DESC_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_desc_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_PORT_DESC_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_desc_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_PORT_DESC_PROP_BSN] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_desc_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_PORT_DESC_PROP_BSN_UPLINK] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_desc_prop_wire_object_id_get,
        .wire_type_set=of_port_desc_prop_bsn_uplink_push_wire_types,
    },
    [OF_PORT_DESC_PROP_ETHERNET] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_desc_prop_wire_object_id_get,
        .wire_type_set=of_port_desc_prop_ethernet_push_wire_types,
    },
    [OF_PORT_DESC_PROP_OPTICAL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_desc_prop_wire_object_id_get,
        .wire_type_set=of_port_desc_prop_optical_push_wire_types,
    },
    [OF_PORT_MOD_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_mod_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_PORT_MOD_PROP_ETHERNET] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_mod_prop_wire_object_id_get,
        .wire_type_set=of_port_mod_prop_ethernet_push_wire_types,
    },
    [OF_PORT_MOD_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_mod_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_PORT_MOD_PROP_OPTICAL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_mod_prop_wire_object_id_get,
        .wire_type_set=of_port_mod_prop_optical_push_wire_types,
    },
    [OF_PORT_STATS_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_stats_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_PORT_STATS_PROP_ETHERNET] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_stats_prop_wire_object_id_get,
        .wire_type_set=of_port_stats_prop_ethernet_push_wire_types,
    },
    [OF_PORT_STATS_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_stats_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_PORT_STATS_PROP_OPTICAL] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_port_stats_prop_wire_object_id_get,
        .wire_type_set=of_port_stats_prop_optical_push_wire_types,
    },
    [OF_QUEUE_DESC] = {
        .wire_length_get=of_queue_desc_wire_length_get,
        .wire_length_set=of_queue_desc_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_QUEUE_DESC_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_desc_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_QUEUE_DESC_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_desc_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_QUEUE_DESC_PROP_MAX_RATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_desc_prop_wire_object_id_get,
        .wire_type_set=of_queue_desc_prop_max_rate_push_wire_types,
    },
    [OF_QUEUE_DESC_PROP_MIN_RATE] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_desc_prop_wire_object_id_get,
        .wire_type_set=of_queue_desc_prop_min_rate_push_wire_types,
    },
    [OF_QUEUE_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_queue_desc_stats_reply_push_wire_types,
    },
    [OF_QUEUE_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_queue_desc_stats_request_push_wire_types,
    },
    [OF_QUEUE_STATS_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_stats_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_QUEUE_STATS_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_queue_stats_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_REQUESTFORWARD] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_requestforward_push_wire_types,
    },
    [OF_ROLE_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_role_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ROLE_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_role_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_ROLE_STATUS] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_role_status_push_wire_types,
    },
    [OF_TABLE_DESC] = {
        .wire_length_get=of_u16_len_wire_length_get,
        .wire_length_set=of_u16_len_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=NULL,
    },
    [OF_TABLE_DESC_STATS_REPLY] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_desc_stats_reply_push_wire_types,
    },
    [OF_TABLE_DESC_STATS_REQUEST] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_desc_stats_request_push_wire_types,
    },
    [OF_TABLE_FEATURE_PROP_TABLE_SYNC_FROM] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_feature_prop_wire_object_id_get,
        .wire_type_set=of_table_feature_prop_table_sync_from_push_wire_types,
    },
    [OF_TABLE_MOD_PROP] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_mod_prop_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_TABLE_MOD_PROP_EVICTION] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_mod_prop_eviction_push_wire_types,
    },
    [OF_TABLE_MOD_PROP_EXPERIMENTER] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=of_table_mod_prop_experimenter_wire_object_id_get,
        .wire_type_set=NULL,
    },
    [OF_TABLE_MOD_PROP_VACANCY] = {
        .wire_length_get=of_tlv16_wire_length_get,
        .wire_length_set=of_tlv16_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_mod_prop_vacancy_push_wire_types,
    },
    [OF_TABLE_STATUS] = {
        .wire_length_get=of_object_message_wire_length_get,
        .wire_length_set=of_object_message_wire_length_set,
        .wire_type_get=NULL,
        .wire_type_set=of_table_status_push_wire_types,
    },
};
